The present invention relates to computer sound. More specifically to a sonic environment. Still more particularly to a sonic environment having behavioral modification.
In the past, the main focus in computer sound has been on computer music and sound synthesis. Both are interesting problems, but there is an unfulfilled need for tools to create whole sonic environments. A sonic environment is a collection of spatially located sounds describing some scenario. For example, while a sonic forest environment may include a bird, wind, water, animal and human sounds it is very difficult, using current tools, to create such an environment because there is no easy way to orchestrate the sounds.
There are two ways to create such a sonic environment, the first is to obtain an actual recording of a forest and play it back. Unfortunately this technique is very storage intensive, a two-minute digital recording at CD quality will require 20 Mbytes of storage. It is also very difficult to make any changes to the sounds once they are recorded and it is impossible to modify the behavior of the sounds dynamically during playback because the representation is not parameterized. Finally, a digital recording is temporally bounded while the application may not be. When an application is temporally bounded it lasts for a finite amount of time. For example, a walk through of the virtual environment will last as long as the user wishes and the application may run out of recorded material yielding no sound. The solution to this would be to loop the recording so that when it ends, playing back again from the beginning. However this solution is noticeable and the environment does not seem realistic.
The second way to create a sonic environment is to use a scripting technique such as a MIDI sequencer to initiate the playing of individual recordings of each of the sound elements comprising the environment, such as a bird call, wind blowing etc. This solves some of the problems mentioned earlier because such a representation is not storage intensive, and a MIDI script can be modified. Other problems, however, persist. While it may be possible to dynamically modify the playback behavior using MIDI control messages such as pitch bend and modulation, this mechanism is intended for musical performance and does not provide the capability to dynamically change the behavior of the environment in a meaningful way. A MIDI script is temporally bounded so that the script may run out before the application is done. Creating the script in the first place is a very tedious task.
Existing techniques include digital recordings and scripting techniques such as MIDI sequences. A digital recording of a sonic environment can be made and played back by the application. Such a representation only exhibits a compact representation. Scripting techniques may be used to orchestrate the playback of the sounds comprising a sonic environment. Scripting techniques do not however exhibit compact representations, stochastically correct behavior, nor dynamically varying behavior. Scripting techniques only provide a limited facility for generation of the representation.
The inherent draw back of current representations is that they are literal: the representation is a specification for a single behavior of the sonic environment over a limited period of time. For example we can model a city street by creating a MIDI script that lasts for two minutes and specifies that an ambulance sound should commence one minute into the script and play for thirty seconds.
There is an unfulfilled need for tools to create entire sonic environments.
A sonic environment is a collection of spatially located sounds describing some scenario. A representation of a sonic environment should have a compact representation. A sonic environment should exhibit well-defined stochastic behavior, and should be temporally unbounded. The sonic environment behavior should be dynamically modifiable through intuitive, application defined parameters. Finally it should lend itself to automatic generation.
The present invention, deemed SoundNet, provides a mechanism for modeling sonic environments that exhibit characteristics that are not possible using current techniques. SoundNet provides a mechanism for expressing sound environments based on programmed behavior of sounds as well as stochastically varying behavior.
SoundNet is made up of SoundNets, which are not temporally bounded so that an environment can be generated indefinitely without the need to resort to looping behavior. SoundNets are a compact representation, which is an important feature for network-based applications like the Internet. SoundNets can be dynamically controlled to modify their behavior at runtime based on application-defined criteria. Finally SoundNets can be automatically generated. This creates a slew of new possibilities in sound research.
A SoundNet is a process for synthesizing sonic environments for use in Virtual Environment applications, computer games, Internet web pages, film and television productions. A sonic environment is a collection of spatially located sounds describing some scenario such as a city street for example. SoundNet provides a process for generating such an environment that has the following properties: a compact representation, stochastically correct behavior, dynamically varying behavior along application defined parameters, temporally unbounded and non-repeating, and facilitates automatic generation of the representation.
SoundNets, on the other hand, are behavioral representations. The representation is a model of how sounds generally act in a given environment. A similar example in SoundNet would model a city street by specifying that an ambulance sound occurs on average once a day, usually in the evening. This is a much more powerful representation because it is not time limited, it is non-repeating, it is parameterized and is encapsulates the stochastic properties of the sounds in the environment.